<?php
#DP 30-05-2012
#DP 08-07-2012
# Autoryzacja zend auth
  
/*
 * Logowanie będzie odbywać się w następujący sposób:

   1. Utworzenie obiektu klasy Application_Model_User
   2. Wpisanie do niego danych z formularza logowania
   3. Wywołanie metody Zend_Auth::authenticate...
   4. ... która wywoła metodę authenticate() naszego Usera

 */
class AutoryzacjaController extends Zend_Controller_Action
{

	public $cos='testwlasnosc';
	private $db=null;
	
	
	/**
	 * akcja inicujaca wykonywana przed kazda inna akcja automatycznie
	 * podobny ale o wiele bardziej rozbuodowany mechanizm jest w yii
	 * mozna fajnie wykorzystac akcji np. do benshmarkow (w init inicjalizuje odliczanie czasu w ametodzie wlasciewej
	 * na kncu kncze)
	 */
    public function init()
    {
        /* tekst zostanie zle wyseietlony bo wykonuje sie on za wczesnie */
    	//echo 'wywołanie akcji init !!';	
    	$profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
		$profiler->setEnabled(true);
		
		$bootstrap = $this->getInvokeArg('bootstrap');
	    $db = $bootstrap->getResource('db');
		$db->setProfiler($profiler);
    	
    }

    public function indexAction()
    {
       Application_Model_Narzedziowe_CVarDumper::dodaj('opiss');
       //$this->view->form = new Application_Form_Login();
       $this->view->form= new Application_Form_Populate();
    }

    /**
     * Akcja logowania sie
     * 
     */
 	public function loginAction()
    {
    	$this->_helper->viewRenderer('index');
	   $form =new Application_Form_Login();
	   
	   Application_Model_Narzedziowe_CVarDumper::dodaj('1opiss');
	   
	   if( $form->isValid($this->getRequest()->getPost()))
	   {
	   	Application_Model_Narzedziowe_CVarDumper::dodaj($form->getValue('username'),'2opissl');
	   	Application_Model_Narzedziowe_CVarDumper::dodaj($form->getValue('password'),'2opiss');
	   	   # wykorzystanie narzedzia zenda klasa Auth tworze jeje obiekt 
		   $adapter = new Zend_Auth_Adapter_DbTable( null, 'user','username','password');
		   
		   # przypisuje do wlasnosci wratosci z formularza
		   $adapter->setIdentity($form->getValue('username'));
		   $adapter->setCredential($form->getValue('password'));
	
		   Application_Model_Narzedziowe_CVarDumper::dodaj('3');
		   $auth = Zend_Auth::getInstance();
		   $result= $auth->authenticate($adapter); //wasciwe sprawdzanie loginu i hasla
		   Application_Model_Narzedziowe_CVarDumper::dodaj('4,5');
		   # $result jest obiektem klasy Zend_Auth  jego metoa isValid zwraca informacje o logowaniu
		   if( $result->isValid())
		   {
		   	// logowanie sie udalo
		   	Application_Model_Narzedziowe_CVarDumper::dodaj('poprawne logowanie');
		   	//return $this->_helper->redirector('index','index','default');
		   }
		   
		   // logowanie sie nie udalo
		   $form->password->addError('Będna proba logowania');
		   Application_Model_Narzedziowe_CVarDumper::dodaj('4');
	   }
	   Application_Model_Narzedziowe_CVarDumper::dodaj('3opiss');
	   $this->view->form=$form;
	   
	}

	/**
	 * wylogowywanie preniesienie do modulu do index 
	 */
	public function logoutAction()
	{
		$auth = Zend_Auth::getInstance();
		$auth->clearIdentity();
		return $this->_helper->redirector('index','autoryzacja','default');
	}
	
	/**
	 * Testowa akcja sprawdzania zalogowanego uzytkownika
	 * @author damian 09-07-2012
	 */
    public function formtestAction()
    {
       Application_Model_Narzedziowe_CVarDumper::dodaj('akcja form test');
    }
}

